這篇是 2016 年 6 月時的紀錄,當時剛接觸 Docker 和 Kubernetes 4 個月左右,在把舊的服務根據性質拆分成 3 個不同的 mircro serverices,想要做到讓 Travis CI 在跑完測試後,自動 build Docker image,再把 image 丟到 Google Cloud Platform 上,讓 GKE 使用。
當時還沒有 Google Cloud Builder 可以使用,所以在找尋解法的時候看到果然有人已經這麼做了。以下就來紀錄一下方法。
學 Kubernetes 的時候找到了這簡短的文章:Orchestrating Docker with Kubernetes,覺得可以讓剛上手的人快速瞭解。
至於透過 Travis CI 自動 build image 的部份,照著這篇文章做的確有成功:Docker Workflow(其實看這篇文章的 .travis.yml
就可以瞭解整個梗概了),但發現效果不盡理想,儘管已經拆分成 base image 和 production image,在每次 build image 的時候節省掉 build base image 的時間了,但花的時間還是太久。
當時因為被抓去做其他事,這部份就只弄到這裡,我覺得滿可惜的,後來大家都還是在 local build image 然後再透過 Makefile 把指令包裝起來,在 local 這邊透過 kubectl 把 image push 到 GCP。
當時過了幾個月後,在 2016 年 9 月看到這篇文章:在 Travis 實現 Docker Cache | 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY,才發現原來有這樣的解法可以用。
後來發現也有很多人遇到一樣的問題,後來也大多是用 docker save
, docker load
解決:
如果覺得我的文章不錯的話,
請幫我按讚、追蹤、訂閱、留言、分享,
有任何問題也都歡迎留言討論,
也可以利用像是 Feedly 等 RSS Reader,
直接訂閱我的部落格:https://blog.m157q.tw。
iThome 這邊我應該只有鐵人賽的時候會使用。
多用幾個 CI 服務呢?XD
「多用幾個 CI 服務」在這情況下沒幫助吧?
還是你想表達的是「多試用其他 CI 服務,有某一家可以更容易做到這件事」的話,直說無妨。